package com.yungu.swift.order.model.vo;

import com.yungu.swift.base.model.annotation.AbsoluteImgPath;
import com.yungu.swift.base.model.annotation.Desensitization;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
public class AdminChildOrderInfoVo implements Serializable {

    /**
     * 租户id
     */
    private String appid;
    /**
     * 主订单ID
     */
    private String mainOrderUuid;

    /**
     * 订单ID
     */
    private String orderUuid;

    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 订单创建时间
     */
    private Date createOn;

    /**
     * 拼车业务状态：100提交（待支付）、200预约中（已支付）、300预约成功（待安排）、400已安排（待出发）、500行程开始、600行程结束（已完成）
     **/
    private Integer joinStatus;

    /**
     * 订单时效类型（1：实时，2：预约）
     **/
    private Integer typeTime;

    /**
     * 线路起点名称
     */
    private String originName;

    /**
     * 线路终点名称
     */
    private String destName;

    /**
     * 实际乘车人号码
     */
    @Desensitization(type = Desensitization.DesensitionType.MOBILE)
    private String actualPasMob;

    /**
     * 订单出发时间
     */
    private Date deparTime;

    /**
     * 实际乘车人数
     */
    private Integer actualPasNum;

    /**
     * 出发地址
     */
    private String originAddress;

    /**
     * 出发城市
     **/
    private String originCity;

    /**
     * 终点地址
     */
    private String destAddress;

    /**
     * 终点城市
     */
    private String destCity;

    /**
     * 起点详细地址
     */
    private String originDetailAddress;

    /**
     * 终点详细地址
     */
    private String destDetailAddress;

    /**
     * 拼车类型（1拼车 2包车 3跨城小件）
     **/
    private Integer typeJoin;

    /**
     * 订单关闭状态（0正常 1关闭）
     **/
    private Integer closeStatus;

    /**
     * 订单关闭类型（PAS_CANCEL乘客主动取消 DRI_CANCEL司机端取消【预留】 TIME_OUT超时系统自动取消 ADMIN_CLOSE后台关闭 默认：null）
     **/
    private String closeType;

    /**
     * 订单关闭原因
     **/
    private String closeReason;

    /**
     * 成人乘客数量
     **/
    private Integer adultNum;

    /**
     * 订单备注
     */
    private String remark;

    /**
     * 货件信息
     */
    private String parcelInfoName;

    /**
     * 货件类型
     */
    private String parcelTypeName;

    /**
     * 货件总重量
     */
    private String parcelWeightName;

    /**
     * 货件总体积
     */
    private String parcelVolumeName;

    /**
     * 货件照片
     */
    @AbsoluteImgPath
    private String parcelPhoto;

    /**
     * 寄件人名称
     */
    @Desensitization(type = Desensitization.DesensitionType.NAME)
    private String senderName;

    /**
     * 寄件人电话
     */
    @Desensitization(type = Desensitization.DesensitionType.MOBILE)
    private String senderMobile;

    /**
     * 收件人名称
     */
    @Desensitization(type = Desensitization.DesensitionType.NAME)
    private String receiverName;

    /**
     * 收件人电话
     */
    @Desensitization(type = Desensitization.DesensitionType.MOBILE)
    private String receiverMobile;

    /**
     * 订单模块 1出租车 2专车 3跨城拼车 4快车 5跨城小件
     */
    private Integer typeModule;

    /**
     * 订单费用
     */
    private Double orderFare;

    /**
     * 订单总价
     */
    private Double totalFare;

    /**
     * 货件订单加价
     */
    private Double parcelRaisePrice;

    /**
     * 车型名称
     */
    private String carModelName;

    /**
     * 司机名称
     */
    @Desensitization(type = Desensitization.DesensitionType.NAME)
    private String driverName;

    /**
     * 车牌号
     */
    private String plateNum;

    /**
     * 司机号码
     */
    @Desensitization(type = Desensitization.DesensitionType.MOBILE)
    private String driverMobile;

    /**
     * 线路ID
     */
    private String wayUuid;

    /**
     * 异常备注
     */
    private Integer typeAbnormal;

    /**
     * 支付状态
     */
    private Integer payStatus;

    /**
     * 实际司机ID
     */
    private String actualDriverUuid;

    /**
     * 订单需求类型 1普通拼车 2机场专线
     */
    private Integer orderDemand;

    /**
     * 出发地经度
     **/
    private Double originLng;

    /**
     * 出发地纬度
     **/
    private Double originLat;

    /**
     * 目的地经度
     **/
    private Double destLng;

    /**
     * 目的地纬度
     **/
    private Double destLat;

    /**
     * 乘客下单所需座位数
     */
    private Integer seatNum;

    /**
     * 乘客ID
     */
    private String passengerUuid;

    /**
     * 车型ID
     */
    private String carModelUuid;

    /**
     * 订单来源：1 APP移动端；2 微信公众号；3 电话叫车；4 pc网站
     **/
    private Integer orderSource;

    /**
     * 乘客名称
     */
    private String passengerName;

    /**
     * 支付金额
     */
    private Double payAmount;

    /**
     * 支付时间
     */
    private String payTime;

    /**
     * 派单时间
     */
    private Long distributeTime;

    /**
     * 乘客上车时间
     */
    private Long pasArrTime;

    /**
     * 乘客下车时间
     */
    private Long arriveTime;

    /**
     * 支付方 1乘客 2司机
     */
    private Integer paySide;

    /**
     * 支付方式 1.微信 2.支付宝 3.余额
     */
    private Integer payType;

    /**
     * 下单人号码
     */
    private String passengerMobile;
}
